import greenfoot.*;  // (World, Actor, GreenfootImage, Greenfoot and MouseInfo)

/**
 * Write a description of class Enemigo here.
 * 
 * @author (your name) 
 * @version (a version number or a date)
 */
public class Enemigo extends Actor
{
    /**
     * Act - do whatever the Enemigo wants to do. This method is called whenever
     * the 'Act' or 'Run' button gets pressed in the environment.
     */
    public static int Time;
    public static int Time2;
    private int T2;
    public static int Last;
    private int LR;
    private int SR;
    private int P;
    public static String Image = "Still1R.png";
    public int cont = 0;
    private boolean salto;
    private int band=0;
    public int enc=0;
    private int aux=0,aux1=1;
    protected GreenfootImage estadoJud;
    protected int alto;
    protected int ancho;
    protected PlataformaEstatica bar;
    protected int n=0,a=0,p=0;
    
    /**
     * Constructor de la Clase Enemigo
     * Se obtienen las dimensiones de altura y anchura
     * y se Obtiene la imagen principal
     */
    public Enemigo()
    {
        estadoJud = getImage();
        alto=estadoJud.getHeight();
        ancho=estadoJud.getWidth();        
    }
    public void act() 
    {
        salta();
        //Move();
        cambia();
        elimina();
    }  
    
    
    public int tipo()
    {
        return 0;
    }
    
    /**
     * Metodo para eliminar al enemigo una vez que cae al final del escenario
     */
    public void elimina()
    {
         if(getY() == 799) { getWorld().removeObject(this); }
    }
    
    /**
     * Metodo para cambiar la direccion del enemigo y simular movimiento
     */
    public void cambia()
    {
        if(n==100)
        {
         if(a%2==0)
          setImage("Pendertuga.png");
         else
          setImage("PendertugaD.png");
         n=0;
         a++;
        }
        n++;
    }
    
    /**
     * Metodo de movimineto hacia la izquierda.
     */
    public void MoveI()
    {
        if(Greenfoot.isKeyDown("a")) { Time2++;            
            SR = 1;
            Last = 2;
            setLocation(getX()-5, getY());
            LR = 1;
            if(Time2 == 10 & T2 == 0) { setImage("leftmove2.png"); 
                Image = "rightmove2.png";
                T2 = 1;
                Time2 = 0;
            }
            if(Time2 == 10 & T2 == 1) { setImage("leftmove3.png"); 
                Image = "rightmove3.png";
                T2 = 0;
                Time2 = 0;
            }
        }
    }
    
    /**
     * Metodo de movimiento hacia la derecha
     */
    public void MoveD()
    {
        if(Greenfoot.isKeyDown("d")) { Time2++;            
            SR = 1;
            Last = 1;
            setLocation(getX()+5, getY());
            LR = 1;
            if(Time2 == 10 & T2 == 0) { setImage("rightmove2.png");
                Image = "leftmove2.png";
                T2 = 1;
                Time2 = 0;
            }
            if(Time2 == 10 & T2 == 1) { setImage("rightmove3.png"); 
                Image = "leftmove3.png";
                T2 = 0;
                Time2 = 0;
            }
        }
        if(Greenfoot.isKeyDown("a") == false & Greenfoot.isKeyDown("d") == false) { LR = 0;
        SR = 0; 
        }
        if(LR == 0) { Last = 0; }
    }
    
    /**
     * Metodo para verificar si se encuentra alguna plataforma en la cual caer
     */
    public int encuentra()
    {
        int res=1 ;
        Actor j = getOneIntersectingObject(PlataformaEstatica.class);
        if(j == null)
       {
          res=0;
       }
        return res;
    }
    
    /**
     * Metodo para saltar el cual verifica la gravedad
     */
    public void salta()
    {
       int y=5;
        enc=encuentra();
      
        
        if(enc==1)
        {
         cont=0;
         band=1;
        }
        
        if(enc==0&&salto==false)
        {
          setLocation(getX(),getY()+y);
          band=0;
        }
    }
}
